数据含义记不住?—— label“大神”来帮忙
本文作者:孙晓玲
文字编辑:李钊颖
技术总编:李朋冲
sysuse auto, clear
describe
clear
input id str20 name gender nationality English Math Chinese
1 "李华" 0 1 77 90 88
2 "阿塔丽" 1 2 82 76 75
3 "张丽" 1 1 89 88 79
4 "古拉马" 0 2 73 84 85
5 "张伟" 0 1 79 75 91
6 "布兰克" 0 3 99 84 74
end
在此基础上,我们分别介绍数据集标签、变量标签和值标签的添加。
1.数据集标签
对当前数据集贴标签,可将数据集命名为特定名称。其基本语法如下:
label data["label"]
在本例中,我们将创建好的数据集命名为 “3年(2)班成绩单”,程序和结果如下:
label data "3年(2)班成绩单"
describe
如上,在结果栏,显示出数据集的标签为“3年(2)班成绩单”。
2.变量标签
对当前数据集中的变量贴标签,用于记载变量名含义,以便后续区分各个变量。其基本语法如下:
在本例的数据集中,有7个不同变量,我们分别给各个变量添加标签。如下:
label var id "学号"
label var name "姓名"
label var gender "性别"
label var nationality "民族"
label var English "英语"
label var Math "数学"
label var Chinese "语文"
describe
如上,在贴上标签后,各个变量的含义一目了然。
3.值标签
值标签可对变量的观测值添加标签,用于记载不同取值的特殊含义。其基本语法如下:
添加值标签分两步走:
第一步设置值标签名(lblname)并设置不同取值的标签含义(#代表值,"label"代表值的含义);
第二步将设置的值标签名(lblname)赋值给变量(varlist)
常用选项的含义如下:
add:新增值标签
modify:修改值标签
replace:替换值标签
在添加值标签之前,我们首先查看本例中的变量取值情况。如下所示:
由上图可知,性别变量gender的取值分别为“0”、“1”,民族变量nationality的取值分别为“1”、“2”、“3”。为便于区分各个取值的含义,有必要为其添加值标签。假设在性别变量中,“0”代表“男性”,“1”代表“女性”;在民族变量中,“1”代表汉族,“2”代表少数民族。我们通过如下程序进行设置:
label define g_values 0 "male" 1 "female"
label values gender g_values //将值标签名赋值给变量gender
label define n_values 1 "汉族" 2 "少数民族"
label values nationality n_values
如上,增加值标签后,变量gender和nationality的取值变成蓝色的“字符串”,右侧也显示出值标签名。然而,这些蓝色字体并非真正的字符串,而是以字符形式显示的数值,点选单元格便可查看其真实取值。如图,我们选取变量gender的第二个观测值,单元格里显示的是“female”,而上方框里则是其真实取值“1”。
当然,我们也可以在设置完值标签后用“label dir”和“label list”命令查看值标签,结果如下:
我们看到,变量nationality的取值“3”并未成功添加上标签。此时,可采用add选项,为其增加一个标签。程序和结果如下:
label define g_values 3 "I don't know", add //增加数据标签
如上,我们为数值“3”增加了值标签“I don't know”。若我们觉得这一值标签名不太恰当,想将其修改为“未知”,则可使用modify选项。程序和结果如下:
label define n_values 3 "未知", modify //修改数据标签
这样,我们就将原来的值标签 “I don't know”更换为中文“未知”。在很多时候,我们想要批量修改某一变量的值标签,replace选项便派上了用场,它可以快速替换某一变量当前的值标签。例如,我们想将变量gender的值标签更换为“男性”和“女性”,则可执行如下程序,结果如下:
label define g_values 0 "男性" 1 "女性", replace //替换数据标签
如果不需要某个标签了,可以使用“label drop”删除值标签,比如我们不需要变量nationality的值标签,此时我们要删除值标签。程序和结果如下:
label drop n_values
list
经过以上介绍,我们便对标签命令label的用法有了大致的了解。增加了标签后,就不会对变量“傻傻分不清楚”啦!
关于我们
微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。